package com.crawler.system.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 系统日志实体类
 * 用于记录系统操作和错误日志
 */
@Data
@TableName("system_log")
public class SystemLog {

    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 日志类型
     * (INFO: 信息, WARNING: 警告, ERROR: 错误, SECURITY: 安全)
     */
    private String type;

    /**
     * 操作模块
     */
    private String module;

    /**
     * 操作方法
     */
    private String method;

    /**
     * 请求路径
     */
    private String requestUrl;

    /**
     * 请求方法
     * (GET, POST, PUT, DELETE等)
     */
    private String requestMethod;

    /**
     * 请求参数
     */
    private String requestParams;

    /**
     * 响应结果
     */
    private String responseResult;

    /**
     * 操作说明
     */
    private String description;

    /**
     * 操作用户ID
     */
    private Long userId;

    /**
     * 操作用户名
     */
    private String username;

    /**
     * 操作IP
     */
    private String ip;

    /**
     * 操作地点
     */
    private String location;

    /**
     * 用户代理
     */
    private String userAgent;

    /**
     * 操作状态
     * (SUCCESS: 成功, FAILURE: 失败)
     */
    private String status;

    /**
     * 错误消息
     */
    private String errorMessage;

    /**
     * 错误堆栈信息
     */
    private String stackTrace;

    /**
     * 执行时间(毫秒)
     */
    private Long executionTime;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;
} 
